/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sistemaacademico;

import java.util.Scanner;

/**
 *
 * @author thiagoj
 */
public class SistemaAcademico {

	/**
	 * @param args the command line arguments
	 */
	public static void main(String[] args) {

		//Estudante[] estudantes;
		//estudantes = new Estudante[10];
		Lista lista = new Lista();
		Scanner in = new Scanner(System.in);

		int opcao = -1;


		while (opcao != 0) {
			opcao = Interface.menuPrincipal();
			if (opcao == 1) {
				Nodo nodo = new Nodo(Interface.cadastroStudante(lista));
				lista.adicionar(nodo);

			}
			if (opcao == 2) {
				int codigo = Interface.listarEstudantes(lista);
				Nodo nodo = lista.busca(codigo);
				if (nodo != null) {
					if (Interface.removerEstudante(nodo)) {
						lista.remover(nodo);
					}
				} else {
					System.out.println("Estudante nao encontrado!");
				}

			}
			if (opcao == 3) {
				int codigo = Interface.listarEstudantes(lista);
				Nodo nodo = lista.busca(codigo);
				if (nodo != null) {
					nodo.setNodo(Interface.alterarEstudante(nodo.getNodo()));
				} else {
					System.out.println("Estudante nao encontrado!");
				}

			}

			if (opcao == 4) {
				Interface.listaDeEstudantesNome(lista);
			}

			if (opcao == 5) {
				Dados.gravaObjetoArquivo(lista, "estudantes.dat");
			}

			if (opcao == 6) {
				lista = Dados.carregaObjetoArquivo("estudantes.dat");
			}
			if (opcao == 7) {
				int opcaoD = Interface.sistemaDisciplina();
				int codigo;
				int codigoDD;
				Estudante estudante;
				switch (opcaoD) {
					case 1:
						codigo = Interface.listarEstudantes(lista);
						estudante = lista.busca(codigo).getNodo();
						Interface.adicionarDisciplina(estudante);
						break;
					case 2:
						codigo = Interface.listarEstudantes(lista);
						estudante = lista.busca(codigo).getNodo();
						Interface.listarDisciplinas(estudante);
						System.out.print("Digite o codigo da disciplina:");

						codigoDD = in.nextInt();
						Interface.apagarDisciplina(estudante, codigoDD);
						break;
					case 3:
						codigo = Interface.listarEstudantes(lista);
						estudante = lista.busca(codigo).getNodo();
						Interface.listarDisciplinas(estudante);
						break;
					case 4:
						codigo = Interface.listarEstudantes(lista);
						estudante = lista.busca(codigo).getNodo();
						Interface.listarDisciplinas(estudante);
						System.out.print("Digite o codigo da disciplina:");
						codigoDD = in.nextInt();
						Interface.adicionarConceito(estudante, codigoDD);

						break;
					case 5:
						codigo = Interface.listarEstudantes(lista);
						estudante = lista.busca(codigo).getNodo();
						Interface.listarDisciplinas(estudante);
						System.out.print("Digite o codigo da disciplina:");
						codigoDD = in.nextInt();
						Interface.listarConceitos(estudante.getDisciplina()[codigoDD]);
						System.out.print("Digite o codigo da conceito:");
						int vetor = in.nextInt();
						estudante.getDisciplina()[codigoDD].setConceito(null, vetor);
						break;

					case 6:
						codigo = Interface.listarEstudantes(lista);
						estudante = lista.busca(codigo).getNodo();
						Interface.listarDisciplinas(estudante);
						System.out.print("Digite o codigo da disciplina:");
						codigoDD = in.nextInt();
						Interface.listarConceitos(estudante.getDisciplina()[codigoDD]);

					default:
				}


			}

		}
	}
}
